/*
 * Address.h
 *
 *  Created on: 04 Ιουν 2010
 *      Author: Sartios
 */

#ifndef ADDRESS_H_
#define ADDRESS_H_

#include "../IAddress.h"

/**
 * Implementation of IAddress interface
 */
class Address : public IAddress {
public:
	/**
	 * Set attribute to NULL
	 */
	Address();
	/**
	 *
	 */
	Address(const string *town,const string *street,const string *number);
	/**
	 *
	 */
	Address(const IAddress *address);
	/**
	 * Delete pointers of attributes
	 */
	virtual ~Address();
	/**
	 * Sets town to paramater
	 * \param string *, town name
	 */
	virtual void setTown(const string *town);
	/**
	 * Returns town name
	 * \return string *,town name
	 */
	virtual string * getTown()const;
	/**
	 * Sets street to parameter
	 * \param string *, street name
	 */
	virtual void setStreet(const string *street);
	/**
	 * Returns street name
	 * \return string *, street name
	 */
	virtual string * getStreet()const;
	/**
	 * Sets street number to parameter
	 * \param string *, street number
	 */
	virtual void	setNumber(const string *number);
	/**
	 * Returns street name
	 * \return string *, street number
	 */
	virtual string * getNumber()const;

private:
	string	*town_;
	string	*street_;
	string	*number_;
};
#endif /* ADDRESS_H_ */
